package com.idis.service;

import com.idis.entity.Contact;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.HttpMethod;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by Ming on 2018/2/7.
 */

/**
 * 联系方式服务
 */
@Service
public class ContactService {

    @Autowired
    RestTemplate restTemplate;

    @Autowired
    String DBUrl;

    private String CONTACT ="/contact";

    private String FIND_ALL="/all";

    private String SAVE="/save";

    private String UPDATE="/update";

    /**
     * 获取联系方式
     * @return 联系方式集
     */
    public List<Contact> findAll(){
        List<Contact> contacts;
        contacts = restTemplate.exchange(DBUrl+CONTACT+FIND_ALL, HttpMethod.GET, null, new ParameterizedTypeReference<ArrayList<Contact>>(){}).getBody();
        return contacts;
    }

    /**
     * 插入新的联系方式
     * @param contact 联系方式
     * @return 插入成功的数量
     */
    public Integer savaContact(Contact contact){
        return restTemplate.postForObject(DBUrl+CONTACT+SAVE,contact,Integer.class);
    }

    /**
     * 更新联系方式，仅更新非空属性，ID必须
     * @param contact 联系方式
     * @return 成功更新的数量
     */
    public Integer update(Contact contact){
        return restTemplate.postForObject(DBUrl+CONTACT+UPDATE,contact,Integer.class);
    }

}
